#include<iostream>
int max(int a,int b);
int main(){
	int n;
	int m;
	std::cin>>n>>m;
	int i;
	int v[m];
	int w[m];
	for(i=0;i<m;i++){
		std::cin>>w[i]>>v[i];
		v[i]=w[i]*v[i];
	};
	int j;
	int b[n+1]={0};
	for(i=0;i<m;i++){
		for(j=n;j>=w[i];j--){
			b[j]=max(b[j],b[j-w[i]]+v[i]);
		};
	};
	std::cout<<b[n];
	return 0;
}
int max(int a,int b){
	return a>b?a:b;
}
